HAL SPI callbacks register/unregister functions ¶
This section provides information about the HAL SPI callbacks register/unregister functions migration.
Callbacks register functions ¶
In HAL1, the function
HAL_SPI_RegisterCallback
is used to register various SPI callbacks through a single function with a specific callback ID, whereas, in HAL2, distinct functions are available to register each specific SPI callback.
|
HAL 1 |
HAL 2 |
|
|---|---|---|
|
SPI Tx Completed callback |
HAL_SPI_RegisterCallback(&hspi,
HAL_SPI_TX_COMPLETE_CB_ID,
USER_SPI_TxCpltCallback);
|
HAL_SPI_RegisterTxCpltCallback(&hspi,
USER_SPI_TxCpltCallback);
|
|
SPI Rx Completed callback |
HAL_SPI_RegisterCallback(&hspi,
HAL_SPI_RX_COMPLETE_CB_ID,
USER_SPI_RxCpltCallback);
|
HAL_SPI_RegisterRxCpltCallback(&hspi,
USER_SPI_RxCpltCallback);
|
|
SPI TxRx Completed callback |
HAL_SPI_RegisterCallback(&hspi,
HAL_SPI_TX_RX_COMPLETE_CB_ID,
USER_SPI_TxRxCpltCallback);
|
HAL_SPI_RegisterTxRxCpltCallback(&hspi,
USER_SPI_TxRxCpltCallback);
|
|
SPI Tx Half Completed callback |
HAL_SPI_RegisterCallback(&hspi,
HAL_SPI_TX_HALF_COMPLETE_CB_ID,
USER_SPI_TxHalfCpltCallback);
|
HAL_SPI_RegisterTxHalfCpltCallback(&hspi,
USER_SPI_TxHalfCpltCallback);
|
|
SPI Rx Half Completed callback |
HAL_SPI_RegisterCallback(&hspi,
HAL_SPI_RX_HALF_COMPLETE_CB_ID,
USER_SPI_RxHalfCpltCallback);
|
HAL_SPI_RegisterRxHalfCpltCallback(&hspi,
USER_SPI_RxHalfCpltCallback);
|
|
SPI TxRx Half Completed callback |
HAL_SPI_RegisterCallback(&hspi,
HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID,
USER_SPI_TxRxHalfCpltCallback);
|
HAL_SPI_RegisterTxRxHalfCpltCallback(&hspi,
USER_SPI_TxRxHalfCpltCallback);
|
|
SPI error callback |
HAL_SPI_RegisterCallback(&hspi,
HAL_SPI_ERROR_CB_ID,
USER_SPI_ErrorCallback);
|
HAL_SPI_RegisterErrorCallback(&hspi,
USER_SPI_TxRxHalfCpltCallback);
|
|
SPI abort callback |
HAL_SPI_RegisterCallback(&hspi,
HAL_SPI_ABORT_CB_ID,
USER_SPI_AbortCpltCallback);
|
HAL_SPI_RegisterAbortCpltCallback(&hspi,
USER_SPI_TxRxHalfCpltCallback);
|
|
SPI suspend callback |
HAL_SPI_RegisterCallback(&hspi,
HAL_SPI_SUSPEND_CB_ID,
USER_SPI_SuspendCallback);
|
HAL_SPI_RegisterSuspendCallback(&hspi,
USER_SPI_TxRxHalfCpltCallback);
|
Related concept Individual callback registration APIs replace global register and unregister functions
Callbacks unregister functions ¶
In HAL2, the unregister callback API has been removed. Instead, callbacks can be managed by re-registering the default HAL SPI weak callbacks as needed.
|
HAL 1 |
HAL 2 |
|
|---|---|---|
|
SPI Tx Completed callback |
HAL_SPI_UnRegisterCallback(&hspi,
HAL_SPI_TX_COMPLETE_CB_ID);
|
HAL_SPI_RegisterTxCpltCallback(&hspi,
HAL_SPI_TxCpltCallback);
|
|
SPI Rx Completed callback |
HAL_SPI_UnRegisterCallback(&hspi,
HAL_SPI_RX_COMPLETE_CB_ID);
|
HAL_SPI_RegisterRxCpltCallback(&hspi,
HAL_SPI_RxCpltCallback);
|
|
SPI TxRx Completed callback |
HAL_SPI_UnRegisterCallback(&hspi,
HAL_SPI_TX_RX_COMPLETE_CB_ID);
|
HAL_SPI_RegisterTxRxCpltCallback(&hspi,
HAL_SPI_TxRxCpltCallback);
|
|
SPI Tx Half Completed callback |
HAL_SPI_UnRegisterCallback(&hspi,
HAL_SPI_TX_HALF_COMPLETE_CB_ID);
|
HAL_SPI_RegisterTxHalfCpltCallback(&hspi,
HAL_SPI_TxHalfCpltCallback);
|
|
SPI Rx Half Completed callback |
HAL_SPI_UnRegisterCallback(&hspi,
HAL_SPI_RX_HALF_COMPLETE_CB_ID);
|
HAL_SPI_RegisterRxHalfCpltCallback(&hspi,
HAL_SPI_RxHalfCpltCallback);
|
|
SPI TxRx Half Completed callback |
HAL_SPI_UnRegisterCallback(&hspi,
HAL_SPI_TX_RX_HALF_COMPLETE_CB_ID);
|
HAL_SPI_RegisterTxRxHalfCpltCallback(&hspi,
HAL_SPI_TxRxHalfCpltCallback);
|
|
SPI error callback |
HAL_SPI_UnRegisterCallback(&hspi,
HAL_SPI_ERROR_CB_ID);
|
HAL_SPI_RegisterErrorCallback(&hspi,
HAL_SPI_TxRxHalfCpltCallback);
|
|
SPI abort callback |
HAL_SPI_UnRegisterCallback(&hspi,
HAL_SPI_ABORT_CB_ID);
|
HAL_SPI_RegisterAbortCpltCallback(&hspi,
HAL_SPI_TxRxHalfCpltCallback);
|
|
SPI suspend callback |
HAL_SPI_UnRegisterCallback(&hspi,
HAL_SPI_SUSPEND_CB_ID);
|
HAL_SPI_RegisterSuspendCallback(&hspi,
HAL_SPI_TxRxHalfCpltCallback);
|
Related concept Individual callback registration APIs replace global register and unregister functions